OPC is quite “sensitive” to proper usage, with regard to efficiency. QuickOPC performs many internal optimizations, and uses the knowledge of proper approaches and procedures to effectively handle the communication with OPC servers.
Here are some of the optimizations implemented in QuickOPC.NET and QuickOPC-COM:
- Wherever possible, OPC operations are performed on multiple elements at once.
- OPC items with similar update rates are put into a common OPC group.
- OPC items with similar percentage deadbands are put into a common OPC group.
- OPC items are not removed from OPC groups immediately, but only if not used for certain amount of time.
- OPC item data is held in memory, and if fresh enough, the value from memory is taken, and no OPC call is made to satisfy the Read request.
- OPC asynchronous calls are preferred over synchronous calls.
- Minimum update rates are enforced, so that the system cannot be easily overloaded.
- Multiple uses of the same OPC server or same OPC item in the user application are merged into a single request to the OPC.
- Internal queues are used to make sure that OPC callbacks cannot be blocked by user code.
Here are some of the optimizations implemented in QuickOPC-UA:
- Wherever possible, OPC operations are performed on multiple elements at once.
- OPC UA sessions are not closed immediately, but only if not used for certain amount of time.
- Multiple uses of the same OPC server endpoint in the user application are merged into a single request.
In QuickOPC-UA, you can call a static method EasyUAClient.CloseAll to close all unused sessions that are open to OPC-UA servers.
See Also